#ifndef __FACTORY2_HPP__
#define __FACTORY2_HPP__

#include "abstract_factory.hpp"
#include "producta2.hpp"
#include "productb2.hpp"

class Factory2: public AbstractFactory {
public:
	Factory2() {cout<<__func__<<endl;}
	~Factory2() {cout<<__func__<<endl;}
	AbstractProductA *createProductA();
	AbstractProductB *createProductB();
};

inline AbstractProductA *Factory2::createProductA()
{
	cout<<__func__<<endl;
	a2 = new ProductA2();
	return a2;
}

inline AbstractProductB *Factory2::createProductB()
{
	cout<<__func__<<endl;
	b2 = new ProductB2();
	return b2;
}

#endif /* end of include guard */
